Decreasing time to market of a pre-configured hyper-converged computing device

ABSTRACT

In a method for decreasing time to market of a pre-configured hyper-converged computing device for supporting a virtualization infrastructure, software is developed, by a first party, to be uploaded on the pre-configured hyper-converged computing device. A second party is determined for building the pre-configured hyper-converged computing device. The first party and the second party collaborate to determine hardware efficiently suited to execute the software. The first party maintains at least some control over the second party for building the pre-configured hyper-converged computing device such that revenue is enhanced by decreasing time to market of the pre-configured hyper-converged computing device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent Application62/040,731, filed on Aug. 22, 2014, entitled “DECREASING TIME TO MARKETOF A PRE-CONFIGURED HYPER-CONVERGED COMPUTING DEVICE” by McDonough etal., having Attorney Docket No. C174.01.PRO, and assigned to theassignee of the present application, hereby incorporated by reference inits entirety.

This application claims priority to U.S. Provisional Patent Application62/040,742, filed on Aug. 22, 2014, entitled “DECREASING TIME TO DEPLOYA VIRTUAL MACHINE” by McDonough et al., having Attorney Docket No.C174.02.PRO, and assigned to the assignee of the present application,hereby incorporated by reference in its entirety.

This application claims priority to U.S. Provisional Patent Application62/040,758, filed on Aug. 22, 2014, entitled “DECREASING USER MANAGEMENTOF AN APPLIANCE,” by McDonough et al., having Attorney Docket No.C174.03.PRO, and assigned to the assignee of the present application,hereby incorporated by reference in its entirety.

This application is related to co-pending U.S. patent application______, filed on ______, entitled “DECREASING TIME TO DEPLOY A VIRTUALMACHINE” by McDonough et al., having Attorney Docket No. C174.02, andassigned to the assignee of the present application.

This application is related to co-pending U.S. patent application______, filed on ______, entitled “DECREASING USER MANAGEMENT OF ANAPPLIANCE,” by McDonough et al., having Attorney Docket No. C174.03, andassigned to the assignee of the present application.

BACKGROUND

In some virtual computing environments, the time period from conceptionof a pre-configured hyper-converged computing device (or appliance) toproviding the pre-configured hyper-converged computing device (orappliance) to market may be prolonged. For example, disparate partiesthat provide different features and functionalities for the appliancetypically take a prolonged time to reach a working agreement regardingwhat each party is responsible for in the development of the appliance.Moreover, the different parties may have different interests and goalsfrom one another which may prolong the development of the appliance.

The prolonged nature of agreeing on determining a working relationshipmay delay the time to market of the appliance. As a result, the revenueof the appliance sold in the market place may be negatively affected dueto the prolonged time to market of the appliance.

In other instances, the time period to set-up a pre-configuredhyper-converged computing device upon purchase may be prolonged. Forexample, it may require hours to deploy a first virtual machine upon thefirst time powering up the appliance. In particular, it may take thecustomer specialized skills to understand the settings and parametersthat may be required to provide to the appliance such that the applianceproperly supports a virtualization infrastructure. Additionally, inconventional systems, there may be various software components fromdisparate parties. As a result, numerous license keys may be required tobe entered to install/execute the software. Moreover, numerous EULAs maybe required to be entered to install/execute the software. All of whichprolong the time to set up the appliance and deploy the first virtualmachine.

As a result, the burden on the customer to properly set-up the applianceprior to first deployment of a virtual machine may deter the customerfrom purchasing the appliance which would negatively affect the revenueto the software providers and/or the distributors of the appliance.

It should also be appreciated that creating and managing hosts andvirtual machines may be complex and cumbersome. Oftentimes, a user, suchas an IT administrator, requires a high level and complex skill set toeffectively configure a new host to join the virtual computingenvironment. Additionally, it may be cumbersome for a user to managesoftware updates to a host. For example, a software update maynegatively impact other software applications and/or the underlyinghardware of a host.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and form a part ofthis specification, illustrate various embodiments and, together withthe Description of Embodiments, serve to explain principles discussedbelow. The drawings referred to in this brief description of thedrawings should not be understood as being drawn to scale unlessspecifically noted.

FIG. 1 depicts a block diagram of a virtual computing environment,according to various embodiments.

FIG. 2 depicts a block diagram of a host computing system, according tovarious embodiments.

FIG. 3 depicts a block diagram of an appliance, according to variousembodiments.

FIG. 4 depicts a block diagram of a side-view of an appliance offeredfor sale, according to various embodiments.

FIG. 5 depicts a block diagram of a virtualization infrastructure,according to various embodiments.

FIG. 6 depicts a block diagram of a virtualization infrastructure,according to various embodiments.

FIG. 7 depicts a block diagram of a pre-configured hyper-convergedcomputing device, according to various embodiments.

FIG. 8 depicts a flow diagram for a method for automatic networkconfiguration of a pre-configured hyper-converged computing device,according to various embodiments.

FIG. 9 depicts a block diagram of a business model, according to variousembodiments.

FIG. 10 depicts a flow diagram for a method for enhancing revenue bydecreasing time to market of a pre-configured hyper-converged computingdevice for supporting a virtualization infrastructure, according tovarious embodiments.

FIG. 11 depicts a flow diagram for a method for enhancing revenue bydecreasing time to market of a pre-configured hyper-converged computingdevice for supporting a virtualization infrastructure, according tovarious embodiments.

FIG. 12 depicts a flow diagram for a method for decreasing time todeploy a virtual machine hosted by pre-configured hyper-convergedcomputing device, according to various embodiments.

FIG. 13 depicts a flow diagram for a method for decreasing time todeploy a virtual machine hosted by pre-configured hyper-convergedcomputing device, according to various embodiments.

FIG. 14 depicts a flow diagram for a method for decreasing usermanagement of a pre-configured hyper-converged computing device,according to various embodiments.

FIG. 15 depicts a flow diagram for a method for decreasing usermanagement of a pre-configured hyper-converged computing device,according to various embodiments.

DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS

Reference will now be made in detail to various embodiments, examples ofwhich are illustrated in the accompanying drawings. While variousembodiments are discussed herein, it will be understood that they arenot intended to be limiting. On the contrary, the presented embodimentsare intended to cover alternatives, modifications and equivalents, whichmay be included within the spirit and scope the various embodiments asdefined by the appended claims. Furthermore, in this Description ofEmbodiments, numerous specific details are set forth in order to providea thorough understanding. However, embodiments may be practiced withoutone or more of these specific details. In other instances, well knownmethods, procedures, components, and circuits have not been described indetail as not to unnecessarily obscure aspects of the describedembodiments.

I. Various Embodiments of an Appliance and a Virtual ComputingEnvironment

FIG. 1 depicts a block diagram that illustrates virtual computingenvironment (VCE) 100 (or virtualization infrastructure) that includescomputing system 110 and virtualized environment 120, according tovarious embodiments. In general, computing system 110 and virtualizedenvironment 120 are communicatively coupled over a network such thatcomputing system 110 may access functionality of virtualized environment120.

As will be described in further detail below, computing system 110 isimplemented using virtualized environment 120. Also, while implementingthe business functionality, computing system 110 might use some ofresources 122.

In one embodiment, computing system 110 may be a system (e.g.,enterprise system) or network that includes a combination of computerhardware and software. The corporation or enterprise utilizes thecombination of hardware and software to organize and run its operations.To do this, system 110 uses resources 122 because system 110 typicallydoes not have dedicated resources that can be given to the virtualizedenvironment. For example, an enterprise system may provide variouscomputing resource for various needs such as, but not limited toinformation technology (IT), security, email, etc.

In various embodiments, computing system 110 includes a plurality ofdevices 112. The devices are any number of physical and/or virtualmachines. For example, in one embodiment, computing system 110 is acorporate computing environment that includes tens of thousands ofphysical and/or virtual machines. It is understood that a virtualmachine is implemented in virtualized environment 120 that includes oneor some combination of physical computing machines. Virtualizedenvironment 120 provides resources 122, such as storage, memory,servers, CPUs, network switches, etc., that are the underlying hardwareinfrastructure for VCE 100.

The physical and/or virtual machines may include a variety of operatingsystems and applications (e.g., operating system, word processing,etc.). The physical and/or virtual machines may have the same installedapplications or may have different installed applications or software.The installed software may be one or more software applications from oneor more vendors.

Each virtual machine may include a guest operating system and a guestfile system.

Moreover, the virtual machines may be logically grouped. That is, asubset of virtual machines may be grouped together in a container (e.g.,VMware vApp™). For example, three different virtual machines may beimplemented for a particular workload. As such, the three differentvirtual machines are logically grouped together to facilitate insupporting the workload. The virtual machines in the logical group mayexecute instructions alone and/or in combination (e.g., distributed)with one another. Also, the container of virtual machines and/orindividual virtual machines may be controlled by a virtual managementsystem. The virtualization infrastructure may also include a pluralityof virtual datacenters. In general, a virtual datacenter is an abstractpool of resources (e.g., memory, CPU, storage). It is understood that avirtual data center is implemented on one or some combination ofphysical machines.

In various embodiments, computing system 110 may be a cloud environment,built upon a virtualized environment 120. Computing system 110 may belocated in an Internet connected datacenter or a private cloud computingcenter coupled with one or more public and/or private networks.Computing system 110, in one embodiment, typically couples with avirtual or physical entity in a computing environment through a networkconnection which may be a public network connection, private networkconnection, or some combination thereof. For example, a user may couplevia an Internet connection with computing system 110 by accessing a webpage or application presented by computing system 110 at a virtual orphysical entity.

As will be described in further detail herein, the virtual machines arehosted by a host computing system. A host includes virtualizationsoftware that is installed on top of the hardware platform and supportsa virtual machine execution space within which one or more virtualmachines may be concurrently instantiated and executed.

In some embodiments, the virtualization software may be a hypervisor(e.g., a VMware ESX™ hypervisor, a VMware ESXi™ hypervisor, etc.) Forexample, if hypervisor is a VMware ESX™ hypervisor, then virtualfunctionality of the host is considered a VMware ESX™ server.

Additionally, a hypervisor or virtual machine monitor (VMM) is a pieceof computer software, firmware or hardware that creates and runs virtualmachines. A computer on which a hypervisor is running one or morevirtual machines is defined as a host machine. Each virtual machine iscalled a guest machine. The hypervisor presents the guest operatingsystems with a virtual operating platform and manages the execution ofthe guest operating systems. Additional details regarding embodiments ofstructure and functionality of a host computer system are provided withrespect to FIG. 2.

During use, the virtual machines perform various workloads. For example,the virtual machines perform the workloads based on executing variousapplications. The virtual machines can perform various workloadsseparately and/or in combination with one another.

Example Host Computer System

FIG. 2 is a schematic diagram that illustrates a virtualized computersystem that is configured to carry out one or more embodiments of thepresent invention. The virtualized computer system is implemented in ahost computer system 200 including hardware platform 230. In oneembodiment, host computer system 200 is constructed on a conventional,typically server-class, hardware platform.

Hardware platform 230 includes one or more central processing units(CPUs) 232, system memory 234, and storage 236. Hardware platform 230may also include one or more network interface controllers (NICs) thatconnect host computer system 200 to a network, and one or more host busadapters (HBAs) that connect host computer system 200 to a persistentstorage unit.

Hypervisor 220 is installed on top of hardware platform 230 and supportsa virtual machine execution space within which one or more virtualmachines (VMs) may be concurrently instantiated and executed. Eachvirtual machine implements a virtual hardware platform that supports theinstallation of a guest operating system (OS) which is capable ofexecuting applications. For example, virtual hardware 224 for virtualmachine 210 supports the installation of guest OS 214 which is capableof executing applications 212 within virtual machine 210.

Guest OS 214 may be any of the well-known commodity operating systems,and includes a native file system layer, for example, either an NTFS oran ext3FS type file system layer. IOs issued by guest OS 214 through thenative file system layer appear to guest OS 214 as being routed to oneor more virtual disks provisioned for virtual machine 210 for finalexecution, but such IOs are, in reality, reprocessed by IO stack 226 ofhypervisor 220 and the reprocessed IOs are issued, for example, throughan HBA to a storage system.

Virtual machine monitor (VMM) 222 and 222 n may be considered separatevirtualization components between the virtual machines and hypervisor220 (which, in such a conception, may itself be considered avirtualization “kernel” component) since there exists a separate VMM foreach instantiated VM. Alternatively, each VMM may be considered to be acomponent of its corresponding virtual machine since such VMM includesthe hardware emulation components for the virtual machine. It shouldalso be recognized that the techniques described herein are alsoapplicable to hosted virtualized computer systems. Furthermore, althoughbenefits that are achieved may be different, the techniques describedherein may be applied to certain non-virtualized computer systems.

Examples of an Appliance

FIG. 3 depicts an embodiment of appliance 300. Appliance 300 is acomputing device that includes the requisite physical hardware andsoftware to create and manage a virtualization infrastructure. Appliance300 is also referred to herein as a pre-configured hyper-convergedcomputing device. In general, a hyper-converged computing deviceincludes pretested, pre-configured and pre-integrated storage, serverand network components, including software, that are located in anenclosure. Moreover, the hyper-converged computing device includes ahypervisor that supports a virtualization infrastructure.

Based on the pre-configured hardware and software disposed withinappliance 300, appliance 300 enables a user to simply and quickly createa virtualization infrastructure and deploy virtual machines shortlyafter the appliance is powered on for the first time.

Appliance 300 includes, among other things, at least one server node.For example, server nodes 310-1 through server node 310-n. Server node310-1 includes a central processing unit (CPU) 311, memory 312, andstorage 313. It should be appreciated that other server nodes (i.e.,server node 310-n) each include a CPU, memory, and storage similar toserver node 310-n.

Appliance 300 is scalable. That is appliance can be scaled to includemore than one server node. For example, appliance 300 can initially havea single server node. However, additional server nodes may be includedin appliance 300.

In one embodiment, appliance 300 is able to deploy a plurality ofvirtual machines in the virtualization infrastructure. For example,based on the hardware and software incorporated in appliance 300,appliance 300 is able to deploy pre-set number of virtual machines(e.g., 75 virtual machines, 150 virtual machines, etc.).

Moreover, each server node may be considered a server or host computingsystem. That is, each server node is able to independently host a numberof virtual machines. For example, server node 310-1 is able to host afirst set of virtual machines, while other server nodes are each able toindependently host other sets of virtual machines, respectively.

The server nodes are independent of one another, and are not required toshare any functionality with one another. Appliance 300 does not includea backplane. As such, the server nodes are isolated from one another andtherefore independent of one another.

CPU 311 may be, but is not limited to, a dual socket CPU (e.g., IntelXeon™ CPUs, 4-core to 6-core).

Memory 312 may be, but is not limited to, 128 gigabytes (GB).

Storage may be, but is not limited to, three drive slots per node. Suchas a solid state drive (SSD) (e.g., an SSD up to 800 GB), and two harddisk drives (HDD) (e.g., HDDs up to 8 terabytes (TB)).

Additionally, the appliance may include various external interfaces,such as but not limited to, serial, network RJ-45 (10000 NIC), graphics,management RJ-45 (100/10000 NIC), power (in front and in rear), UID (infront and in rear) and a USB.

The appliance may also include Component Interconnect Express (PCIe)expansion slots, and a disk controller with pass through capabilities.It should be appreciated that the appliance may include other hardwareattributes that are compatible with supporting a virtualizationinfrastructure.

In one embodiment, appliance 300 is a rackable 2U/4Node appliance. Thatis, appliance 300 is two rack units in height and includes four servernodes (e.g., server nodes 310-1 through 310-n).

The size of a piece of rack-mounted equipment is described as a numberin “U” or “RU” (rack unit). One rack unit is often referred to as “1 U”,2 rack units as “2U” and so on. “U” is a unit of measure that describesthe height of equipment designed to mount in a rack (e.g., 19-inch rackor a 23-inch rack). The 19-inch (482.6 mm) or 23-inch (584.2 mm)dimension refers to the width of the equipment mounting frame in therack including the frame. In some instances, one rack unit is 1.75inches (4.445 cm) high.

In another embodiment, appliance 300 is a 4U/4Node appliance. That is,appliance 300 is four rack units in height and includes 4 server nodes(e.g., server nodes 310-1 through 310-n).

Appliance 300 includes software to support a virtualizationinfrastructure. That is, appliance 300 includes code or instructionsstored on physical hardware in appliance 300, that when executed by aprocessor, supports a virtualization infrastructure. For instance,appliance 300 includes pre-configured software module 320.

It should be appreciated that the software installed on appliance 300(e.g., software module 320) is stored in a storage device. In variousembodiments, the software may be installed in a single server node ormay be distributed in various server nodes. In another embodiment, thesoftware may be stored in a storage device within appliance 300 but isoutside of the server nodes.

During operation of the appliance, the software may be executed by oneor more CPUs in a single server node or the execution may be distributedamongst various CPUs in various server nodes.

Software module 320 includes, among other things, hypervisor 322. Asdescribed above, a hypervisor is installed on top of hardware platform(e.g., CPU, memory and storage) and supports a virtual machine executionspace within which one or more virtual machines (VMs) may beconcurrently instantiated and executed.

In various embodiments, hypervisor 322 is VMware ESX™ hypervisor or aVMware ESXi™ hypervisor. It is noted that “ESX” is derived from the term“Elastic Sky X” coined by VMware™.

It should be appreciated that software module 320, in one embodiment,includes a suite of software tools for cloud computing (e.g., VMwarevSphere™′ VCenter™) that utilizes various components such as a VMwareESX/ESXi hypervisor.

Software module 320 includes storage block 324. Storage block 324 is alogical partition of storage (e.g., storage 313) in appliance 300. Inother words, storage block 324 is virtual storage. In one embodiment,storage block 314 is a virtual storage area network (VSAN). As a result,the VSAN allows traffic to be isolated within specific portions of astorage area network.

Storage block 324 is imbedded or integral with hypervisor 322. In otherwords, the data path for storage is in the hypervisor layer.

Various advantages occur due to the storage block integrated with thehypervisor. In one example, the VSAN communicates with the ESX layer ata kernel level and is not required to communicate over a network via anEthernet connection. As such, communication latency between the storageblock and hypervisor is reduced.

GUI module 326 is code or instructions that enable the utilization of agraphical user interface to creating and managing appliances (e.g., ESXhosts) and virtual machines of the virtualization infrastructure. Thegraphical user interface is described in further detail below.

It is noted that software module 320 is proprietary software of a singleentity (e.g., VMware™). For example, hypervisor 322, storage block 324,and GUI module 326 are proprietary software code to a single entity.That is, hypervisor 322, storage block 324, and GUI module 326 are notopen source code, and therefore require a license agreement between thelicensor (e.g., VMware™) and a purchaser of the appliance that includesthe proprietary software module. In one embodiment, the licenseagreement is an end-user license agreement (EULA). The EULA establishesthe purchaser's right to use the software (e.g., software module 320)and the hardware of appliance 300.

FIG. 4 depicts an embodiment of a side-view of an appliance offered forsale. In one embodiment, appliance 300 is offered for sale as a singlestock keeping unit (SKU). For example, appliance 300 is disposed inpackaging 400 and SKU 410 is on packaging 400. Accordingly, appliance300 is offered for sale as a single SKU.

More specifically, appliance 300, as described herein, is pre-configuredwith the requisite hardware and software for employing a virtualizationinfrastructure. Therefore, subsequent the purchase of appliance 300 as asingle SKU, appliance 300 is not required to include any additionalhardware and/or software to support and manage a virtualizationinfrastructure.

Upon powering on appliance 300 for the first time, a single EULA isdisplayed to an end-user. Because software module 320 is proprietary toa single entity (e.g., VMware™), only a single EULA, provided by thesingle entity, is displayed to the purchasing end-user. Morespecifically, at least hypervisor 322 (e.g., ESX/ESXi hypervisor) andstorage block 324 (e.g., VSAN) are proprietary to a single entity (e.g.,VMware™). Therefore, only a single EULA pertaining to hypervisor 322 andstorage block 324 is displayed and provided to an end-user.

Upon acceptance of the EULA, appliance 300 is enabled to operate andmanage a virtualization infrastructure, and deploy virtual machines inthe virtualization infrastructure.

It should be appreciated that upon first powering on appliance 300 andaccepting the single EULA, a virtualization infrastructure is able to berapidly created and a virtual machine is able to be deployed within thevirtualization infrastructure within minutes (e.g., 15 minutes).Moreover, the virtualization infrastructure is able to be managed andcontrolled by an end-user that is not required to have high-level ITadministrative training and experience.

In one embodiment, appliance 300 is able to deploy a plurality ofvirtual machines in the virtualization infrastructure. For example,based on the hardware and software incorporated in appliance 300,appliance 300 is able to deploy pre-set number of virtual machines(e.g., 75 virtual machines, 150 virtual machines, etc.).

Examples of Virtualization Infrastructures

FIG. 5 depicts an embodiment of various appliances supportingvirtualization infrastructure 500.

In one embodiment, appliances may be grouped together to increase thefunctionality of creating and managing a virtualization infrastructure.For example, appliance 510-1 was initially utilized to deploy aplurality of virtual machines, at location 510. However, additionalvirtual machines were desired but appliance 510-1, alone, was not ableto meet the demand for the desired additional virtual machines. As such,additional appliances 510-2, 510-3, and 510-4 were purchased and groupedtogether to meet the demand of the additional virtual machines. Inparticular, the cluster of appliances which are communicatively coupledtogether, act as a single platform for managing the virtualizationinfrastructure and deploying virtual machines.

Similarly, appliance 520-1 was initially utilized to deploy a pluralityof virtual machines, at location 520. However, additional virtualmachines were desired but appliance 520-1, alone, was not able to meetthe demand for the desired additional virtual machines. As such,additional appliance 520-2 was purchased and grouped together withappliance 520-1 to meet the demand of the additional virtual machines.

It should be appreciated that any number of appliances may be groupedtogether. For example, two, three, four, five or more appliances may begrouped together provided that the functionality of the appliances, as awhole, are able to act as a single platform for managing thevirtualization infrastructure.

Additionally, the appliances and/or clusters of appliances may belocated at various locations. For example, a first cluster of appliancesmay be located at a main office of an enterprise, while a second clusterof appliances are located at a remote office/branch office (ROBO).

In another example, virtualization infrastructure 500 is avirtualization infrastructure of a large enterprise having variousbuilding and infrastructure at various geo-locations. In such anexample, information technology (IT) is located at a first location(e.g., location 510), an engineering team is located at a secondlocation (e.g., location 520) and sales team is located at location 530.

Accordingly, appliances 510-1 through 510-4 may be grouped together at afirst location 510 to support the demand for virtual machines of the ITteam, appliances 510-1 and 510-2 are grouped together at location 520 tosupport the demand of virtual machines for the engineering team, andappliance 530-1 is located at location 530 to support the demand ofvirtual machines for the sales team.

As will be described in further detail below, GUI module 326 enables aGUI to facilitate the creating and managing of hosts and virtualmachines. Moreover, the GUI is able to facilitate in managing thevirtualization infrastructure by displaying the attributes of theappliances. For example, the GUI would display the particular health,resources used, and the like, for each of the appliances invirtualization infrastructure 500.

Embodiments of Auto-Discovery of Appliances in a Network

FIG. 6 depicts an embodiment of network 600 (or virtualizationinfrastructure).

Network 600 may include one or more appliances. For example, network 600may include various appliances that are grouped together in a clusterand/or stand-alone.

Network 600, in one embodiment, includes appliance cluster 610 thatincludes appliances 610-1 through 610-n. Appliances 610-1 through 610-nare communicatively coupled and act as a single platform for managingthe virtualization infrastructure and deploying virtual machines.

Additionally, network 600 may include stand-alone appliances such asappliance 620. Appliance 620 is independent to other clusters and otherstand-alone appliances.

It is noted that appliances in network 600 (stand-alone appliancesand/or clustered appliances) are authenticated and configured tofunction within network 600.

It may be desired that additional appliances are added to network 600either as a stand-alone appliance or part of an existing appliancecluster to increase the functionality of the virtualizationinfrastructure. Moreover, the auto-discovery of other appliances thatare authenticated and configured for use in the network is beneficial tothe overall management of the appliances and network.

Referring still to FIG. 6, appliance 630 is intended to be added tonetwork 600. Appliance 630 is initially communicatively coupled tonetwork 600 (prior to being authenticated and configured to be includedin network 600).

Appliance 630 automatically broadcasts an auto-discovery request 632over network 600 to appliances within network 600 (e.g., appliances610-1 through 610-n and appliance 620). The auto-discovery request byappliance 630 is provided by, but is not limited to, multicast DomainName System (MDNS) broadcasting, or Domain Name System-Service Discovery(DNS-SD).

Appliance 630 may broadcast auto-discovery request 632 at various timesduring operation. For example, auto-discovery request 632 may bebroadcasted upon initial powering on of appliance 630, during initialoperation of appliance 630, or when appliance 630 is initiallycommunicatively coupled to network 600 (but not authenticated orconfigured to operate within network 600.

Auto-discovery request 632 includes a service type. For example, request632 includes a request for devices (or appliances) that arepre-configured hyper-converged computing devices. In one embodiment, theservice type in request 632 is the same as the service type of appliance630 (e.g., pre-configured hyper-converged computing device).

As will be described in further detail below, appliances have a uniqueidentifier. The unique identifier includes the service type of theparticular appliance. As such, in one embodiment, auto-discovery request632 includes a portion of the unique identifier of the appliance.

Appliances within network 600 provide responses 634 to auto-discoveryrequest 632 by appliance 630. Appliances in network 600 that receive theauto-discovery request may be required to respond to the auto-discoveryrequest. In particular, the appliances having the same service type asthe service type in auto-discovery request 632 provide responses 634.

If a stand-alone appliance, such as appliance 620, in network 600receives the auto-discovery request then the stand-alone applianceprovides a response. If appliances in a cluster receive theauto-discovery request, then one or more appliances in the clusterprovide a response indicating that they are in a cluster of appliances.

Responses 634 are accessed by appliance 630 and indicate the appliancesthat are authenticated and configured to operate in network 600.

In one embodiment, responses 634 are obtained and displayed for viewingby a user, such as an IT administrator for network 600. The user maythen select for appliance 630 to join a cluster, such as cluster 610, orjoin network 600 as a stand-alone appliance.

In another embodiment, appliance 630 may automatically decide to join acluster, such as cluster 610, or join network 600 as a stand-aloneappliance. The automatic decision may be based on which appliances innetwork 600 that are most similar to appliance 630.

Examples of an Appliance and Server Nodes with Unique Identifiers

A virtualization infrastructure, such as a datacenter, includes numeroushardware devices (e.g., appliances, routers, etc.). As a result, it isburdensome for administrators of the virtualization infrastructure tomanage all of the components of the virtualization infrastructure. Forexample, if a server node of an appliance has a failure or error, it isvery difficult to determine the location of the appliance in thevirtualization infrastructure and which of the server nodes in theappliance has an error.

As will be described in further detail below, unique identifiers of aserver node are correlated with a location of the server nodes in theappliance to facilitate in determining the exact location of the servernodes in the appliance.

FIG. 7 depicts an embodiment of a block diagram of appliance 700. Theblock diagram can be a front view or a back view of appliance 700.

Appliance 700 is a four node appliance. Accordingly, appliance 700includes independent server node 710, independent server node 712,independent server node 714, and independent server node 716. It shouldbe appreciated that, in various embodiments, appliance 700 can includeless than four nodes or more than four nodes.

Appliance 700 includes unique identifier 705. Unique identifier 705 isany identifier that is unique to appliance 700.

Additionally, each server node includes a unique identifier. Forexample, independent server node 710 includes unique identifier 711,independent server node 712 includes unique identifier 713, independentserver node 714 includes unique identifier 715, and independent servernode 716 includes unique identifier 717. Unique identifiers of theserver nodes are any identifier that are unique their respectiveindependent server node.

Unique identifier 705 can include any information associated with theappliance 900 such as, but not limited to, manufacturing code,distribution code, supplier code, version, service type, and randominformation (e.g., random alphanumeric number).

Likewise, the unique identifier for each server node can include anyinformation associated with the respective server node, such as, but notlimited to, manufacturing code, distribution code, supplier code,version, service type, and random information (e.g., random alphanumericnumber).

In one embodiment, unique identifier 705 includes information associatedwith server nodes that are a part of the appliance, such as, the uniqueidentifiers of each server node.

Appliance 700 includes pre-defined locations for placement ofindependent server nodes. For example, appliance 700 includes location1, location 2, location 3, and location 4. The designated locationscorrespond to the slots in which independent server nodes are disposedin appliance 700 and are communicatively coupled with appliance 900.

For example, independent server node 710 is located at location 1,independent server node 712 is located at location 2, independent servernode 714 is located at location 3, and independent server node 716 islocated at location 4.

In one embodiment, the locations are sequential. For example, location 1through location 4.

In another embodiment, the locations are sequential in a pre-definedpattern. For example, the locations are sequentially numbered in a “Z”pattern. In particular, the pattern of locations 1 through 4 forms a “Z”pattern, where location 1 is at the left side of the upper row, location2 is at the right side of the upper row, location 3 is at the left ofthe lower row, and location 4 is at the right of the lower row. Itshould be appreciated that sequence of locations 1 through 4 may providea different pattern.

The unique identifier for each node is correlated with the location orposition of the server node. For example, unique identifier 711 ofserver node 710 is correlated/associated with location 1, uniqueidentifier 713 of server node 712 is correlated/associated with location2, unique identifier 715 of server node 714 is correlated/associatedwith location 3, and unique identifier 717 of server node 716 iscorrelated/associated with location 4.

Based on the correlation, as described above, the exact location of theserver node within the appliance is readily determined.

For instance, it is indicated that a server in a datacenter has failed.The failed server is identified as server node 710. Unique identifier711 of server node 710 is correlated with location 1 of appliance 700.Based on the correlation, the exact location of server node 710 isdetermined to be in location 1 (e.g., upper left hand side of appliance700). As a result, once appliance 700 is located, an IT administrator orthe like is able to readily identify the failed server as being theserver node in location 1 (e.g., upper left hand side) of appliance 700.

Examples of Authentication and Configuration of an Appliance in aNetwork

FIG. 8 depicts a flow diagram 800 for a method for automaticconfiguration of an appliance. Network 810 includes appliances 812.Network 810 is similar to network 600, as described above. As such,appliances 1212 are similar to appliances in network 600. In particular,appliance 814 is similar to appliance 630 in that it is desired thatappliance 814 is to be configured for network 810.

At 820, appliance 814 broadcasts an auto-discovery request to appliances812 in network 810. The broadcast by appliance 814 is the same as thebroadcast of appliance 630 described herein.

At 821, appliances 812 that receive the auto-discovery request provideresponses to appliance 814. The responses are the same as responses 634described herein.

At 822, it is decided that appliance 814 will join the network, eitheras a stand-alone appliance, joining an existing appliance cluster, orcreating a new cluster with an existing stand-alone device.

At 823, appliance is authenticated with network 810 and appliance 814requests network configuration information from appliances alreadyconfigured in network 812. The configuration information can be anyinformation the enables appliance 814 to be configured in network 810.For example, configuration information can be, but is not limited to,internet protocol (IP) addresses, virtual local area networkidentification (VLAN IDs), etc.

The authentication is any secured authentication protocol, such as anauthentication that utilizes a shared key.

At 824, network configuration information is sent to appliance 814 fromone or more appliances 812.

At 825, appliance 814 automatically performs the network configurationsuch that it is configured to be a part of network 810.

II. Various Embodiments of Decreasing Time to Market of a Pre-ConfiguredHyper-Converged Computing Device

Conventionally, in some instances, the time period from conception of apre-configured hyper-converged computing device (or appliance) toproviding the pre-configured hyper-converged computing device (orappliance) to market may be prolonged. For example, disparate partiesthat provide different features and functionalities for the appliancetypically take a prolonged time to reach a working agreement regardingwhat each party is responsible for in the development of the appliance.Moreover, the different parties may have different interests and goalsfrom one another which may prolong the development of the appliance.

The prolonged nature of agreeing on determining a working relationshipmay delay the time to market of the appliance. As a result, the revenueof the appliance sold in the market place may be negatively affected dueto the prolonged time to market of the appliance.

In contrast, as will be described in further detail below, a method isprovided for enhancing revenue by decreasing time to market of apre-configured hyper-converged computing device for supporting avirtualization infrastructure. For example, revenue is increased byreducing the time to market for a pre-configured hyper-convergedcomputing device (e.g., appliance 300).

More specifically, for example, if a time to market is decreased, thenrevenue generated by the sale of the appliance increases because theappliance is on the market a longer time period and customers haveadditional time to purchase the appliance.

FIG. 9 depicts a block diagram of a business model 900 of a relationshipof parties involved in the development and building of a pre-configuredhyper-converged computing device.

Portion 910 pertains to the appliance software and hardwarespecifications. For example, portion 910 includes software 912 that isdeveloped for installation and execution on the appliance. In oneembodiment, software 912 is the exclusive software to be installed andexecuted on the pre-configured hyper-converged computing device (e.g.,appliance 300). That is, software 912 developed by a first party is theonly software that installed and subsequently executed on the appliance.

Software 910, in one embodiment, is pre-configured software module 320that includes, among other things, hypervisor 322, storage block 324 andGUI module 326. Software 910 can be any software that is executed on theappliance for the management of a virtualization infrastructure (e.g.,virtualization infrastructure 500).

Additionally, portion 910 can include hardware specification 914.Hardware specifications 914 can be any specification that is developedthat facilitates in determining an efficient and effectively underlyinghardware for the appliance. The underlying hardware, in one embodiment,is the hardware for each server node (e.g., server node 310-1 through310-n). Hardware specifications 914 can include any specification for aCPU, memory and/or storage (e.g., CPU 311, memory 312 and storage 313).

The software provider or developer of software 912 seeks out a businessrelationship with partner or distributor 920 to facilitate, among otherthings, building the appliance. The partner/distributor takesresponsibility, in various degrees, for various steps in the process ofbuilding the appliance. The responsibilities are memorialized in a legalagreement between the software developer (e.g., first party) and thepartner/distributor (e.g., second party).

In particular, the agreement provides that the partner builds theappliance such that the selected hardware meets hardware specifications914 provided by the software developer.

Additionally, the partner and software developer collaborate with oneanother during the process of developing and building the appliance. Forexample, the software developer tests the hardware that is selected bythe partner and tests such software on the selected hardware todetermine if the hardware meets the hardware specifications and that thesoftware runs as expected on the hardware.

Moreover, the software maintains some aspect of control over the partnerduring the building of the appliance. For example, the party thatcreates software 912 can instruct the partner that selects the hardwarewhether or not the hardware is approved.

In one embodiment, the partner/distributer provides for the source,procurement and management 922 of the hardware in the appliance. Forexample, the partner is responsible for finding the source of thehardware, procure the hardware and manages the purchase of the hardwarefor building the appliance.

The partner provides for the build and quality assurance 923 of theappliance. For example the partner builds the physical appliance withthe software installed on the appliance. Additionally, the partnerprovides the resources to physically build the appliance at a factoryand determine that the appliance meets quality assurance requirements.

The partner provides for the logistics and direct shipment 924 of theappliance. For example, the partner/distributor is responsible for thelogistics of building the appliance and shipping the appliance, such asdirect shipping through the distributor channels and direct sales.

The partner provides for the finance services. For example, the partnerprovides financing to customers who purchase the appliance.Additionally, the partner may lease the appliance to customers.

In one embodiment, the partner provides OEM license fees 926 to thedeveloper of the software.

The appliance, as sold by the partner, is sold as a single SKU 927. TheSKU can include the hardware provided by the partner, the softwareprovided by the software provider and customer support.

Portion 930 is directed towards the sales channel (e.g., OEM channel) ofthe partner and direct sales of the partner. In particular, the partnerprovides post sale support 932 for the appliance.

For example, the partner handles the first and the second support callsfrom the customer (e.g., L1 and L2 support calls). Additionally, thesoftware developer may provide support to the partner.

It should be appreciated that customer 940 purchases or leases theappliance through channel and direct sales of the partner.

As described above, business model 900 enables for a method forenhancing revenue by decreasing time to market of a pre-configuredhyper-converged computing device for supporting a virtualizationinfrastructure.

More specifically, for example, if a time to market is decreased, thensales of the appliances may increase because the appliances are on themarket for a longer time period and more appliances will be purchaseddue to the longer time period on the market (as compared to a shortertime period on the market due to an elongated time to market).

Example Methods of Operation

The following discussion sets forth in detail the operation of someexample methods of operation of embodiments. With reference to FIGS. 10and 11, flow diagrams 1000 and 1100 illustrate example procedures usedby various embodiments. Flow diagrams 1000 and 1100 include someprocedures that, in various embodiments, may include some steps that arecarried out by a processor under the control of computer-readable andcomputer-executable instructions. In this fashion, procedures describedherein and in conjunction with flow diagrams 1000 and 1100 are, or maybe, implemented using a computer, in various embodiments. Thecomputer-readable and computer-executable instructions can reside in anytangible computer readable storage media. Some non-limiting examples oftangible computer readable storage media include random access memory,read only memory, magnetic disks, solid state drives/“disks,” andoptical disks, any or all of which may be employed with computerenvironments. The computer-readable and computer-executableinstructions, which reside on tangible computer readable storage media,are used to control or operate in conjunction with, for example, one orsome combination of processors of the computer environments and/orvirtualized environment. It is appreciated that the processor(s) may bephysical or virtual or some combination (it should also be appreciatedthat a virtual processor is implemented on physical hardware). Althoughspecific procedures are disclosed in flow diagrams 1000 and 1100 suchprocedures are examples. That is, embodiments are well suited toperforming various other procedures or variations of the proceduresrecited in flow diagrams 1000 and 1100. Likewise, in some embodiments,the procedures in flow diagrams 1000 and 1100 may be performed in anorder different than presented and/or not all of the proceduresdescribed in one or more of these flow diagrams may be performed.

FIG. 10 depicts a process flow diagram 1000 of a method for a method forenhancing revenue by decreasing time to market of a pre-configuredhyper-converged computing device for supporting a virtualizationinfrastructure, according to various embodiments.

At 1010, develop software, by a first party, to be uploaded on thepre-configured hyper-converged computing device. For example, a softwarecompany develops the exclusive software to be installed and executed onthe pre-configured hyper-converged computing device.

At 1020, determine a second party for building the pre-configuredhyper-converged computing device. For example, the software companyfinds another party, such as an electronic device distributor, to buildthe pre-configured hyper-converged computing device.

At 1030, collaborate between the first party and the second party todetermine hardware efficiently suited to execute the software, whereinthe first party maintains at least some control over the second partyfor the building the pre-configured hyper-converged computing devicesuch that revenue is enhanced by decreasing time to market of thepre-configured hyper-converged computing device. For example, thesoftware company and the distributor collaborate with one another tobuild the pre-configured hyper-converged computing device that will besold in the marketplace.

Additionally, the software company assumes some control over thedecision making that relates to building the pre-configuredhyper-converged computing device.

As a result, revenue of the software company and the distributor areenhanced by decreasing time to market of the pre-configuredhyper-converged computing device.

It is noted that any of the procedures, stated above, regarding flowdiagram 1000 may be implemented in hardware, or a combination ofhardware with firmware and/or software. For example, any of theprocedures are implemented by a processor(s) of a cloud environmentand/or a computing environment.

FIG. 11 depicts a process flow diagram 1100 of a method for a method forenhancing revenue by decreasing time to market of a pre-configuredhyper-converged computing device for supporting a virtualizationinfrastructure, according to various embodiments.

At 1110, develop software, by a first party, to be exclusively executedby the pre-configured hyper-converged computing device, wherein softwarecomprises a hypervisor for managing virtual machines hosted by thepre-configured hyper-converged computing device. For example, a softwarecompany develops the exclusive software to be installed and executed onthe pre-configured hyper-converged computing device.

At 1120, determine a second party for building the pre-configuredhyper-converged computing device. For example, the software companyfinds another party, such as an electronic device distributor, to buildthe pre-configured hyper-converged computing device.

At 1130, collaborate between the first party and the second party todetermine hardware efficiently suited to exclusively execute thesoftware, wherein the first party maintains at least some control overthe second party for the building the pre-configured hyper-convergedcomputing device such that revenue is enhanced by decreasing time tomarket of the pre-configured hyper-converged computing device. Forexample, the software company and the distributor collaborate with oneanother to build the pre-configured hyper-converged computing devicethat will be sold in the marketplace.

Additionally, the software company assumes some control over thedecision making that relates to building the pre-configuredhyper-converged computing device.

As a result, revenue of the software company and the distributor areenhanced by decreasing time to market of the pre-configuredhyper-converged computing device

It is noted that any of the procedures, stated above, regarding flowdiagram 1100 may be implemented in hardware, or a combination ofhardware with firmware and/or software. For example, any of theprocedures are implemented by a processor(s) of a cloud environmentand/or a computing environment.

III. Various Embodiments of Decreasing Time to Deploy a Virtual Machine

Conventionally, in some instances, the time period to set-up apre-configured hyper-converged computing device upon purchase may beprolonged. For example, it may require hours to deploy a first virtualmachine upon the first time powering up the appliance. In particular, itmay take the customer specialized skills to understand the settings andparameters that may be required to provide to the appliance such thatthe appliance properly supports a virtualization infrastructure.Additionally, in conventional systems, there may be various softwarecomponents from disparate parties. As a result, numerous license keysmay be required to be entered to install/execute the software. Moreover,numerous EULAs may be required to be entered to install/execute thesoftware. All of which prolong the time to set up the appliance anddeploy the first virtual machine.

As a result, the burden on the customer to properly set-up the applianceprior to first deployment of a virtual machine may deter the customerfrom purchasing the appliance which would negatively affect the revenueto the software providers and/or the distributors of the appliance.

In contrast, as will be described in further detail below, a method isprovided for enhancing revenue by decreasing time to deploy a virtualmachine hosted by pre-configured hyper-converged computing device forsupporting a virtualization infrastructure. For example, revenue isincreased by reducing the time to first deployment of a virtual machineby a pre-configured hyper-converged computing device (e.g., appliance300).

More specifically, for example, if the time to first deployment of avirtual machine (or time to value) is decreased, then the customer willbe more willing to purchase the appliance as compared to an appliancethat has a longer time to first deployment of a virtual machine. As aresult, revenue is enhanced due to customers purchasing the appliancewith a lower time to first deployment.

In various embodiments, displaying a single EULA decreases the time tofirst deployment of a virtual machine. For instance, upon powering on anappliance (e.g., appliance 300) for the first time, a single EULA isdisplayed to an end-user. Because the software installed in theappliance (e.g., software module 320 that includes hypervisor 322 andstorage block 324) is proprietary to a single entity (e.g., VMware™),only a single EULA, provided by the single entity, is displayed to thepurchasing end-user.

Upon acceptance of the EULA, the appliance is enabled to operate andmanage a virtualization infrastructure, and deploy virtual machines inthe virtualization infrastructure.

It should be appreciated that upon first powering on of the applianceand accepting the single EULA, a virtualization infrastructure is ableto be rapidly created and a virtual machine is able to be deployedwithin the virtualization infrastructure within minutes (e.g., 15minutes). Moreover, the virtualization infrastructure is able to bemanaged and controlled by an end-user that is not required to havehigh-level IT administrative training and experience.

In various embodiments, entering a single license key decreases the timeto first deployment of a virtual machine. In general a license key (orproduct key) for a computer program certifies that the copy of theprogram is original. Activation is sometimes done offline by enteringthe key. In some instances, online activation is provided to preventmultiple people using the same key.

For instance, upon powering on an appliance (e.g., appliance 300) forthe first time, a single license key is displayed to an end-user.Because the software installed in the appliance (e.g., software module320 that includes hypervisor 322 and storage block 324) is proprietaryto a single entity (e.g., VMware™), only a single license key isdisplayed to the purchasing end-user.

Upon entering the single license key, the appliance is enabled tooperate and manage a virtualization infrastructure, and deploy virtualmachines in the virtualization infrastructure.

Example Methods of Operation

The following discussion sets forth in detail the operation of someexample methods of operation of embodiments. With reference to FIGS. 12and 13, flow diagrams 1200 and 1300 illustrate example procedures usedby various embodiments. Flow diagrams 1200 and 1300 include someprocedures that, in various embodiments, may include some steps that arecarried out by a processor under the control of computer-readable andcomputer-executable instructions. In this fashion, procedures describedherein and in conjunction with flow diagrams 1200 and 1300 are, or maybe, implemented using a computer, in various embodiments. Thecomputer-readable and computer-executable instructions can reside in anytangible computer readable storage media. Some non-limiting examples oftangible computer readable storage media include random access memory,read only memory, magnetic disks, solid state drives/“disks,” andoptical disks, any or all of which may be employed with computerenvironments. The computer-readable and computer-executableinstructions, which reside on tangible computer readable storage media,are used to control or operate in conjunction with, for example, one orsome combination of processors of the computer environments and/orvirtualized environment. It is appreciated that the processor(s) may bephysical or virtual or some combination (it should also be appreciatedthat a virtual processor is implemented on physical hardware). Althoughspecific procedures are disclosed in flow diagrams 1200 and 1300 suchprocedures are examples. That is, embodiments are well suited toperforming various other procedures or variations of the proceduresrecited in flow diagrams 1200 and 1300. Likewise, in some embodiments,the procedures in flow diagrams 1200 and 1300 may be performed in anorder different than presented and/or not all of the proceduresdescribed in one or more of these flow diagrams may be performed.

FIG. 12 depicts a process flow diagram 1200 of a method for decreasingtime to deploy a virtual machine hosted by pre-configuredhyper-converged computing device, according to various embodiments.

At 1210, provide instructions to display a single end-user licenseagreement (EULA) to enable execution of software on the pre-configuredhyper-converged computing device upon acceptance of the single EULA. Forexample, upon powering up an appliance, a single EULA is displayed foracceptance.

At 1220, receive the acceptance of the single EULA by a user. Forexample, a user accepts the single EULA.

At 1230, in response to the acceptance of the single EULA, deploy afirst virtual machine in a virtualization infrastructure supported bythe pre-configured hyper-converged computing device such that the firstvirtual machine is deployed in a first time frame rather than a longersecond time frame that includes accepting a plurality of EULAs. Forexample, upon acceptance of the single EULA, a first virtual machine isdeployed in the virtualization infrastructure supported by theappliance. As a result, the first virtual machine is deployed in a firsttime frame rather than a longer second time frame that includesaccepting a plurality of EULAs.

It is noted that any of the procedures, stated above, regarding flowdiagram 1200 may be implemented in hardware, or a combination ofhardware with firmware and/or software. For example, any of theprocedures are implemented by a processor(s) of a cloud environmentand/or a computing environment.

FIG. 13 depicts a process flow diagram 1300 of a method for decreasingtime to deploy a virtual machine hosted by pre-configuredhyper-converged computing device, according to various embodiments.

At 1310, display a field for a single software license key for aplurality of software to be installed on the pre-configuredhyper-converged computing device. For example, in one embodiment, uponinitial powering on of the appliance, the software installed in theappliance requires user entry of a software license key in order for thesoftware to properly execute on the appliance.

At 1320, receive user input of the single software license key. Forexample, the user provides a single license software key for each of theseparate software packages installed on the appliance. Each of theseparate software packages are provided by a single software provider.

At 1330, deploy a first virtual machine in a virtualizationinfrastructure supported by the pre-configured hyper-converged computingdevice such that the first virtual machine is deployed in a first timeframe rather than a longer second time frame that includes user input ofa plurality of software license keys for installation of the pluralityof software. For example, in response to determining that the softwareis valid based on the provided single software license key, a firstvirtual machine is deployed by the appliance in the virtualizationinfrastructure. As a result, the first virtual machine is deployed in afirst time frame rather than a longer second time frame that includesproviding a plurality of software license keys for a plurality ofsoftware applications.

It is noted that any of the procedures, stated above, regarding flowdiagram 1300 may be implemented in hardware, or a combination ofhardware with firmware and/or software. For example, any of theprocedures are implemented by a processor(s) of a cloud environmentand/or a computing environment.

IV. Various Embodiments of Decreasing User Management of an Appliance

In conventional virtual computing environments, creating and managinghosts (e.g., ESX hosts) and virtual machines may be complex andcumbersome. Oftentimes, a user, such as an IT administrator, requires ahigh level and complex skill set to effectively configure a new host tojoin the virtual computing environment. Additionally, it may becumbersome for a user to manage software updates to a host. For example,a software update may negatively impact other software applicationsand/or the underlying hardware of a host.

In contrast, a pre-configured hyper-converged computing device (e.g.,appliance 300) as described herein, enables for lowmaintenance/management required by the user. For example, all of thesoftware executing on the appliance is developed and owned by a singleentity. Accordingly, if a software update is required then the softwareupdate is pre-tested by the single entity to ensure that performance ofthe software and/or hardware installed and executing on the appliance isnot negatively affected by the software update.

In particular, the software company that owns the software implementedin the appliance may pre-test the software on a similar appliance todetermine if there may be any issues with the update on other softwareapplications and/or the underlying hardware in the appliance. If thereare no issues with the update, then the update provided to the customeris pre-determined to cause no negative affects to the functionality ofthe appliance that is being updated. As a result, management by the useron the appliance is reduced.

Additionally, the pre-configured hyper-converged computing device mayprovide hitless upgrades. In general, a hitless upgrade enables forsoftware updates to a device with little or no negative affects to thesoftware currently running on the device.

For example, a workload of a first node may be offloaded to anothernode, while the first node is updated with software. Once updated, thefirst node may be brought back to service and the workload may be loadedback onto the first node.

Since all of the software installed on the appliance, including thehypervisor, is provided by a single entity, software updates to theappliance may be hitless.

Example Methods of Operation

The following discussion sets forth in detail the operation of someexample methods of operation of embodiments. With reference to FIGS. 14and 15, flow diagrams 1400 and 1500 illustrate example procedures usedby various embodiments. Flow diagrams 1400 and 1500 include someprocedures that, in various embodiments, may include some steps that arecarried out by a processor under the control of computer-readable andcomputer-executable instructions. In this fashion, procedures describedherein and in conjunction with flow diagrams 1400 and 1500 are, or maybe, implemented using a computer, in various embodiments. Thecomputer-readable and computer-executable instructions can reside in anytangible computer readable storage media. Some non-limiting examples oftangible computer readable storage media include random access memory,read only memory, magnetic disks, solid state drives/“disks,” andoptical disks, any or all of which may be employed with computerenvironments. The computer-readable and computer-executableinstructions, which reside on tangible computer readable storage media,are used to control or operate in conjunction with, for example, one orsome combination of processors of the computer environments and/orvirtualized environment. It is appreciated that the processor(s) may bephysical or virtual or some combination (it should also be appreciatedthat a virtual processor is implemented on physical hardware). Althoughspecific procedures are disclosed in flow diagrams 1400 and 1500 suchprocedures are examples. That is, embodiments are well suited toperforming various other procedures or variations of the proceduresrecited in flow diagrams 1400 and 1500. Likewise, in some embodiments,the procedures in flow diagrams 1400 and 1500 may be performed in anorder different than presented and/or not all of the proceduresdescribed in one or more of these flow diagrams may be performed.

FIG. 14 depicts a process flow diagram 1400 of a method for decreasinguser management of a pre-configured hyper-converged computing device,according to various embodiments.

At 1410, test software updates of installed software on an underlyinghardware platform of the pre-configured hyper-converged computing deviceby a first party, wherein the installed software is provided by thefirst party. For example, the first party that developed the softwareexclusively installed in the appliance pre-tests software updates on theinstalled software and the underlying hardware platform of theappliance.

At 1420, provide the software updates, by the first party, for theupdating installed software on the pre-configured hyper-convergedcomputing device. For example, if the first party determines that thesoftware updates will not negatively affect the functionality of theappliance, then the party provides the updates to customers. Thesoftware updates may be automatically installed on the appliance orcustomers may download the updates from a repository.

At 1430, enable installation of the software updates on thepre-configured hyper-converged computing device such that usermanagement of the pre-configured hyper-converged computing device isdecreased based on the software updates previously tested on theunderlying hardware platform. For example, the customer may provideinstructions to have the software updates automatically installed on theappliance. As a result, the user management of the pre-configuredhyper-converged computing device is decreased based on the softwareupdates previously tested on the underlying hardware platform.

It is noted that any of the procedures, stated above, regarding flowdiagram 1400 may be implemented in hardware, or a combination ofhardware with firmware and/or software. For example, any of theprocedures are implemented by a processor(s) of a cloud environmentand/or a computing environment.

FIG. 15 depicts a process flow diagram 1500 of a method for decreasinguser management of a pre-configured hyper-converged computing device,according to various embodiments.

At 1510, provide software, by a first party, for exclusive execution onthe pre-configured hyper-converged computing device, wherein thesoftware comprises a hypervisor. For example, a software providedprovides the software that is exclusively installed and executed by theappliance.

At 1520, provide hitless upgrading of the software on the pre-configuredhyper-converged computing device such that user management of thepre-configured hyper-converged computing device is decreased based onuninterrupting of operations of the pre-configured hyper-convergedcomputing device during the hitless upgrading. For example, due to thehypervisor being a part of the exclusive software provided by a singleparty, workloads of a first node maybe offloaded to other nodes whilethe first node is brought off line and software updated on the firstnode. As a result, hitless upgrading of the software on thepre-configured hyper-converged computing device is provided such thatuser management of the pre-configured hyper-converged computing deviceis decreased based on uninterrupting of operations of the pre-configuredhyper-converged computing device during the hitless upgrading.

It is noted that any of the procedures, stated above, regarding flowdiagram 1500 may be implemented in hardware, or a combination ofhardware with firmware and/or software. For example, any of theprocedures are implemented by a processor(s) of a cloud environmentand/or a computing environment.

One or more embodiments of the present invention may be implemented asone or more computer programs or as one or more computer program modulesembodied in one or more computer readable media. The term computerreadable medium refers to any data storage device that can store datawhich can thereafter be input to a computer system—computer readablemedia may be based on any existing or subsequently developed technologyfor embodying computer programs in a manner that enables them to be readby a computer. Examples of a computer readable medium include a harddrive, network attached storage (NAS), read-only memory, random-accessmemory (e.g., a flash memory device), a CD (Compact Discs)—CD-ROM, aCD-R, or a CD-RW, a DVD (Digital Versatile Disc), a magnetic tape, andother optical and non-optical data storage devices. The computerreadable medium can also be distributed over a network coupled computersystem so that the computer readable code is stored and executed in adistributed fashion.

Although one or more embodiments of the present invention have beendescribed in some detail for clarity of understanding, it will beapparent that certain changes and modifications may be made within thescope of the claims. Accordingly, the described embodiments are to beconsidered as illustrative and not restrictive, and the scope of theclaims is not to be limited to details given herein, but may be modifiedwithin the scope and equivalents of the claims. In the claims, elementsand/or steps do not imply any particular order of operation, unlessexplicitly stated in the claims.

Virtualization systems in accordance with the various embodiments may beimplemented as hosted embodiments, non-hosted embodiments or asembodiments that tend to blur distinctions between the two, are allenvisioned. Furthermore, various virtualization operations may be whollyor partially implemented in hardware. For example, a hardwareimplementation may employ a look-up table for modification of storageaccess requests to secure non-disk data.

Many variations, modifications, additions, and improvements arepossible, regardless the degree of virtualization. The virtualizationsoftware can therefore include components of a host, console, or guestoperating system that performs virtualization functions. Pluralinstances may be provided for components, operations or structuresdescribed herein as a single instance. Finally, boundaries betweenvarious components, operations and data stores are somewhat arbitrary,and particular operations are illustrated in the context of specificillustrative configurations. Other allocations of functionality areenvisioned and may fall within the scope of the invention(s). Ingeneral, structures and functionality presented as separate componentsin exemplary configurations may be implemented as a combined structureor component. Similarly, structures and functionality presented as asingle component may be implemented as separate components. These andother variations, modifications, additions, and improvements may fallwithin the scope of the appended claims(s).

1. A method for decreasing time to market of a pre-configuredhyper-converged computing device for supporting a virtualizationinfrastructure, said method comprising: develop software, by a firstparty, to be uploaded on said pre-configured hyper-converged computingdevice; determining a second party for building said pre-configuredhyper-converged computing device; and collaborating between said firstparty and said second party to determine hardware efficiently suited toexecute said software, wherein said first party maintains at least somecontrol over said second party for said building said pre-configuredhyper-converged computing device such that revenue is enhanced bydecreasing time to market of said pre-configured hyper-convergedcomputing device.
 2. The method of claim 1, wherein said apre-configured hyper-converged computing device is sold by said secondparty.
 3. The method of claim 1, wherein said second party is adistributer of said pre-configured hyper-converged computing device. 4.The method of claim 1, wherein said a pre-configured hyper-convergedcomputing device is offered for sale as a single stock keeping unit(SKU).
 5. The method of claim 1, wherein said first party tests saidhardware proposed by said second party for building said pre-configuredhyper-converged computing device.
 6. The method of claim 1, wherein saidsecond party provides customer support for said pre-configuredhyper-converged computing device.
 7. The method of claim 1, wherein saidpre-configured hyper-converged computing device is a single rackableenclosure.
 8. The method of claim 1, wherein said pre-configuredhyper-converged computing device is a two rack unit-four node (2U/4N)device.
 9. The method of claim 1, wherein said pre-configuredhyper-converged computing device comprises a plurality of independentserver nodes, wherein each of said plurality of independent server nodescomprise: a central processing unit (CPU), memory, and storage.
 10. Themethod of claim 1, wherein said software comprises a hypervisor formanaging virtual machines hosted by said pre-configured hyper-convergedcomputing device.
 11. A method for decreasing time to market of apre-configured hyper-converged computing device for supporting avirtualization infrastructure, said method comprising: develop software,by a first party, to be exclusively executed by said pre-configuredhyper-converged computing device, wherein software comprises ahypervisor for managing virtual machines hosted by said pre-configuredhyper-converged computing device; determining a second party forbuilding said pre-configured hyper-converged computing device; andcollaborating between said first party and said second party todetermine hardware efficiently suited to exclusively execute saidsoftware, wherein said first party maintains at least some control oversaid second party for said building said pre-configured hyper-convergedcomputing device such that revenue is enhanced by decreasing time tomarket of said pre-configured hyper-converged computing device.
 12. Themethod of claim 11, wherein said a pre-configured hyper-convergedcomputing device is sold by said second party.
 13. The method of claim11, wherein said second party is a distributer of said pre-configuredhyper-converged computing device.
 14. The method of claim 11, whereinsaid a pre-configured hyper-converged computing device is offered forsale as a single stock keeping unit (SKU).
 15. The method of claim 11,wherein said first party tests said hardware proposed by said secondparty for building said pre-configured hyper-converged computing device.16. The method of claim 11, wherein said second party provides customersupport for said pre-configured hyper-converged computing device. 17.The method of claim 11, wherein said pre-configured hyper-convergedcomputing device is a two rack unit—four node (2U/4N) device.
 18. Themethod of claim 11, wherein said pre-configured hyper-convergedcomputing device comprises a plurality of independent server nodes,wherein each of said plurality of independent server nodes comprise: acentral processing unit (CPU), memory, and storage.
 19. The method ofclaim 11, wherein said hypervisor comprises: an ESX hypervisor.